1. Field of the Invention
The present invention generally relates to intelligent agents, and more particularly to the creation and/or configuration of such agents.
2. Description of the Related Art
The automation of tedious and complex tasks has long been a goal of computer science. In this regard, intelligent agents have attracted significant attention in recent years. Generally, an agent is a computer system or software program that supports a user with accomplishment of some task or activity. Intelligent software agents may be characterized as long-running processes that monitor information concerning their environment via events or polling, process that information using procedural or declarative domain knowledge, and then take actions to respond to situations detected in their environment.
Although the theorized potential of agents remains largely untapped, some degree of utility has been achieved. For example, on the Internet an agent is a program that gathers information or performs some other service on a regular schedule and without the immediate presence of a human user. Typically, an agent program, using parameters provided by a user, searches all or some part of the Internet gathering information of interest to the user, and then presents it to the user on a periodic basis. A particular example of an agent is the email service that alerts the user about news on specified topics of interest. A number of similar agents compare shopping prices and bring the results of the comparison back to the user. Other types of agents include specific site watchers that tell users when the site has been updated or look for other events and analyst agents that not only gather but also organize and interpret information.
The creation and subsequent customization of agents is facilitated by toolkits. One such toolkit is IBM's ABLE™ (Agent Building and Learning Environment) toolkit. The toolkit includes one or more panels providing a host of graphical elements and menu options from which a user may select to configure agents. For example, a System Administration agent may need to know the e-mail address of who to contact in the event of a problem, or a Storage Management agent may need to know the minimum amount of free disk space allowed before taking action. Using a toolkit, a user can configure the agents with the needed information in order for the agent to carry out its tasks.
One shortcoming of the state of the art is that the interface through which users (or other entities such as other agents) interact with an agent is static. That is, the same interface is provided to a user each time the agent's interface is invoked. This is true even though the agent's environment may dictate that some elements are not relevant or that some other element not defined for the interface may be more relevant. For example, consider a storage monitoring agent that learns that storage requirements increase during a certain time of day. A customization panel of the user interface for the storage monitoring agent would preferably ask a user for permission to temporarily move disk space from another partition during the peak storage use period, and the allow the user to specify an amount of storage to move. However, because agent user interfaces are statically defined, such options are not provided to the user unless the options are part of the interfaces original static definition. No mechanism to dynamically apply an agent's intelligence to an interface exists.
Therefore, there is a need for a mechanism to dynamically apply an agent's intelligence to an interface for the agent.